const { ethers } = require("ethers");

/**
 * 直接连接Sepolia测试网，检查Hardhat测试地址的真实余额
 */
async function main() {
    console.log("🔍 检查Hardhat测试地址在Sepolia测试网的真实余额\n");
    
    // 连接到Sepolia测试网（使用公共RPC）
    const provider = new ethers.JsonRpcProvider("https://ethereum-sepolia-rpc.publicnode.com");
    
    // Hardhat的默认测试地址（私钥是公开的）
    const testAddresses = [
        {
            address: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
            name: "Hardhat默认部署者",
            privateKey: "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"
        },
        {
            address: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", 
            name: "Hardhat测试用户1",
            privateKey: "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d"
        },
        {
            address: "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC",
            name: "Hardhat测试用户2", 
            privateKey: "0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a"
        }
    ];
    
    try {
        const network = await provider.getNetwork();
        console.log(`📍 网络: Sepolia (Chain ID: ${network.chainId})`);
        console.log(`🔗 RPC: https://rpc.sepolia.org\n`);
        
        for (const account of testAddresses) {
            try {
                const balance = await provider.getBalance(account.address);
                const balanceInEth = ethers.formatEther(balance);
                
                console.log(`👤 ${account.name}`);
                console.log(`📍 地址: ${account.address}`);
                console.log(`💰 余额: ${balanceInEth} ETH`);
                console.log(`🔑 私钥: ${account.privateKey} (⚠️ 公开的！)`);
                
                if (balance > 0) {
                    console.log("⚠️  这个地址在Sepolia上有余额！任何人都可以取走！");
                } else {
                    console.log("✅ 余额为0，这是正常的");
                }
                console.log("─".repeat(60));
            } catch (error) {
                console.log(`❌ 查询 ${account.address} 失败: ${error.message}`);
            }
        }
        
        console.log("\n🚨 重要警告:");
        console.log("1. 这些私钥是Hardhat的默认测试私钥，完全公开");
        console.log("2. 全世界的开发者都知道这些私钥");
        console.log("3. 如果向这些地址发送真实的ETH，会立即被他人取走");
        console.log("4. 这些地址只能用于本地开发，绝不能用于真实网络");
        console.log("5. 要在测试网部署，需要创建新的钱包地址");
        
    } catch (error) {
        console.error("❌ 连接Sepolia网络失败:", error.message);
        console.log("\n💡 可能的原因:");
        console.log("- 网络连接问题");
        console.log("- RPC服务暂时不可用");
        console.log("- 需要等待几秒后重试");
    }
}

main()
    .then(() => process.exit(0))
    .catch((error) => {
        console.error("❌ 脚本执行失败:", error);
        process.exit(1);
    });